/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sisgraf.controler;
import sisgraf.dao.UnidadeDaoImp;
import sisgraf.model.Unidade;
import java.util.List;
import javax.swing.table.TableModel;
import javax.swing.JTable;

/**
 *
 * Classe de comunicação entre a Interface Gráfica e o DAO
 * @author jordan
 */
public class UnidadeControler extends Controler {
//    private Unidade unidade;
    private UnidadeDaoImp daoLock = new UnidadeDaoImp();
    public TableModel getListarUnidade() {
        List<Unidade> lista = new UnidadeDaoImp().list("");
        String[] cabecalho = new String[]  {"Cod.","Descricao"};
        TableModel modelo = new UnidadeTabela(lista, cabecalho); //lista = meu list/ArrayList e nomes = nome das colunas
        return modelo;
    }
    // Ajusta o tamanho das colunas da tabela (tableModel)
    public void ajustarTabela(JTable tabela){
        int[] tamCol = new int[] {2,10};
        super.ajustarTabela(tabela, tamCol);
    }

    public Unidade prepararAlterarUnidade(int id){
        return daoLock.getLockUnidade(id);
    }
    public Unidade leUnidade(int id){
        return daoLock.getUnidade(id);
    }
    public boolean excluirUnidade(Unidade unidade) {
        UnidadeDaoImp dao = new UnidadeDaoImp();
        return dao.remove(unidade);
    }
    public boolean adicionarUnidade(Unidade unidade){
        UnidadeDaoImp dao = new UnidadeDaoImp();
        return dao.save(unidade);
    }

    public boolean alterarUnidade(Unidade unidade){
        if (!daoLock.settLockUnidade(unidade)){
            return false;
        } else {
            return true;
        }
    }
    public boolean liberarUnidade(){
        if (!daoLock.unLockUnidade()){
            return false;
        } else {
            return true;
        }
    }
}
